/*
Copyright (C) 2009-2010 Xanadu Development Team

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2
of the License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/

#pragma once

#include <string>

class GuildMembers;
class Map;
class Player;
class World;

class Guild {
private:
	int id, points;
	short logo, logoBG;
	char logoColor, logoBGColor, capacity;
	std::string guildname, notice, ranks[5];
	GuildMembers* members;
	World* world;
public:
	Guild(World* world, Player* player, std::string guildname);
	Guild(int id);
	~Guild();
	int getID() {
		return id;
	}
	GuildMembers* getMembers() {
		return members;
	}
	bool checkMembers(int members, Map* map, int minlevel, int maxlevel);
	void removeMember(int playerid);
	std::string getGuildName() {
		return guildname;
	}
	void setGuildName(std::string name) {
		guildname = name;
	}
	std::string getRank(int x) {
		return ranks[x];
	}
	void setRank(std::string name, int num) {
		ranks[num] = name;
	}
	std::string getNotice() {
		return notice;
	}
	void setNotice(std::string notice) {
		this->notice = notice;
	}
	char getCapacity() {
		return capacity;
	}
	void setCapacity(char cap) {
		capacity = cap;
	}
	int getGuildPoints() {
		return points;
	}
	void setGuildPoints(int points) {
		this->points = points;
	}
	short getLogo() {
		return logo;
	}
	void setLogo(short logo) {
		this->logo = logo;
	}
	char getLogoColor() {
		return logoColor;
	}
	void setLogoColor(char color) {
		logoColor = color;
	}
	short getLogoBG() {
		return logoBG;
	}
	void setLogoBG(short BG) {
		logoBG = BG;
	}
	char getLogoBGColor() {
		return logoBGColor;
	}
	void setLogoBGColor(char color) {
		logoBGColor = color;
	}
};
